/*
 * Buffer.h
 *
 *  Created on: Mar 28, 2011
 *      Author: hxu
 */

#ifndef BUFFER_H_
#define BUFFER_H_

#include "BtreeNode.h"

namespace Cxuh {

class Buffer: public BtreeNode {
	friend class Btree;
public:
	Buffer(int id1); // empty buffer
	Buffer(int id1, int x1, int y1, int z1);
	Buffer(int id1, int x1, int y1, int z1, double r1, double c1, double d1, double load1);
	virtual ~Buffer();
	int getW() const {
		return w;
	} // return the width of the buffer
	double getD() const {
		return Dbuf;
	}
	double getMaxload() const {
		return cload_limit;
	}

	static double Rout;	// output r of buffers, ohm
	static double Cin;	// input c of buffers, F
	static double Dbuf;	// intrinsic delay of buffers, s
	static double cload_limit; // load constraint

private:
	int w; // width
};
}

#endif /* BUFFER_H_ */
